\chapter{Introducción}
	Hoy en día, Internet está presente de lleno en nuestras vidas y en muchas ocasiones necesitamos acceder a él para obtener información concreta 
	sobre diversos asuntos. Además, en muchas ocasiones, esta información que buscamos está relacionada con algún entorno físico en el que podemos 
	encontrarnos. El problema está en que para hacer uso de algún servicio de información de ese tipo, normalmente necesitamos un ordenador y un 
	software concreto, algo que no solemos llevar encima cuando salimos de casa.

	\section{Mi proyecto: Predesys}
		\begin{figure}[H]
			\centering
			\includegraphics[width=300px]{../media/logo3.png}
			\caption{Logotipo de Predesys}
		\end{figure}
		
		Predesys es una solución a la creación de servicios de información basados en la detección de dispositivos inalámbricos y de otros tipos en un 
		determinado lugar, ofreciendo un sistema extensible por medio de plugins para el cual el usuario no requiere ningún hardware o software 
		especial, necesitando tan sólo su teléfono móvil o algún otro dispositivo de uso común.\\
		
		Cada plugin que se instale en el sistema representa un servicio, el cual es ofrecido automáticamente. El sistema soporta tanto servicios que se 
		ejecutan automáticamente cuando ocurre una detección de dispositivos como servicios que se ejecutan cuando un usuario del sistema así lo quiera en un 
		momento concreto (éstos últimos, a través de un servicio web).\\
		
		De momento, el sistema soporta detección por Bluetooth y por Ethernet/Wi-Fi, pero es adaptable a la detección por cualquier otra tecnología.\\
		
		Concretamente, se trata de un sistema contenido en un servidor central y un conjunto de servidores secundarios asociados con el objetivo de 
		detectar la presencia de diferentes dispositivos (principalmente, inalámbricos, como teléfonos móviles y ordenadores portátiles) que se 
		encuentren cerca físicamente de dichos servidores secundarios para ofrecer una serie de servicios de información a los usuarios de esos 
		dispositivos y a terceros. Está diseñado para los sistemas operativos Linux, es software libre y está escrito en el lenguaje de programación 
		Python\cite{python}.
		
		\begin{figure}[H]
			\centering
			\includegraphics[width=\textwidth]{../media/predesys.png}
			\caption{Esquema de Predesys}
		\end{figure}
		
	\section{Objetivos generales}
		Los objetivos principales del proyecto son:
		
		\begin{enumerate}
			\item Ofrecer un sistema capaz de detectar un dispositivo inalámbrico concreto y ofrecer un cierto servicio a dicho dispositivo.
			\item Ofrecer una arquitectura extensible basada en plugins de servicios para el sistema.
		\end{enumerate}
		
	\section{Trabajos relacionados}
		A continuación, veremos algunos trabajos relacionados con la temática en la que se mueve Predesys, junto con una tabla comparativa
		de todos estos trabajos, que aparece al final. Los medios que he utilizado en la búsqueda de estos trabajos han sido Internet y el buscador
		Google.
		
		\subsection*{BluKit}
			BluKit es un sistema de mensajería a través de Bluetooth que permite enviar diferentes mensajes a
			teléfonos móviles que se encuentren en alguna zona concreta. Cada unidad BluKit puede conectarse a una
			red de mensajería llamada BluNet, que permite enviar mensajes a otras zonas en las que se encuentren
			otras unidades BluKit.\\

			\begin{itemize2}
				\item Tipo de trabajo: Aplicación software y servicio de información
				\item Coste (de unidad BluKit): 39,95 euros (sin IVA)
				\item Coste (de pertenencia a BluNet): Bajo presupuesto
				\item Licencia: Propietaria
				\item Tecnologías implicadas: Bluetooth
				\item Autores: BluLabs
				\item Sitio web: \cite{blukit}
			\end{itemize2}
			
			\begin{figure}[H]
				\centering
				\includegraphics[width=150px]{../media/blukitpro.jpg}
				\caption{Dispositivo emisor de mensajes de BluKit}
			\end{figure}
			
		\subsection*{Geo Remind Me}
			GeobRemind Me es una aplicación muy ligera que permite añadir alertas especiales a \textit{smartphones}. Estas alertas avisarán al 
			usuario cuando esté cerca de una localización en la que tenga alguna tarea pendiente.\\

			\begin{itemize2}
				\item Tipo de trabajo: Aplicación software para dispositivos móviles, aplicación web 
				\item Coste: Gratuito
				\item Licencias: GPLv3 y AGPLv3
				\item Tecnologías implicadas: Android, iPhone, GPS, HTML 5 
				\item Autores: Equipo de Geo Remind Me
				\item Sitio web: \cite{georemindme}
			\end{itemize2}
			
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/georemindme3.png}
				\caption{Pantalla de la aplicación web para móviles de Geo Remind Me}
			\end{figure}
			
			\begin{figure}[H]
				\centering	
				\includegraphics[width=150px]{../media/georemindme1.png}
				\caption{Pantalla de la aplicación móvil nativa de Geo Remind Me}
			\end{figure}
			
			\begin{figure}[H]
				\centering
				\includegraphics[width=150px]{../media/georemindme2.png}
				\caption{Pantalla de la aplicación web de Geo Remind Me}
			\end{figure}

		\subsection*{PowerWarning}
			PowerWarning es un detector de presencia de personas en una determinada sala. Consiste en utilizar un teléfono móvil que detecta cuándo 
			unas puertas han sido abiertas y envía un SMS a otro teléfono para avisar a alguien de la intrusión.\\
			
			\begin{itemize2}
				\item Tipo de trabajo: Software para dispositivos móviles
				\item Coste: Gratuito
				\item Licencia: Apache License 2.0
				\item Tecnologías implicadas: Simbian, SMS, Python
				\item Autores: Luca Cassioli
				\item Sitio web: \cite{powerwarning}
			\end{itemize2}
			
			\begin{figure}[H]
				\centering
				\includegraphics[width=\textwidth]{../media/powerwarning.png}
				\caption{Esquema de Power Warning}
			\end{figure}
			
		\subsection*{BlueHoc}
			BlueHoc es un simulador de protolos de comunicación realizado por IBM. Permite que las aplicaciones software puedan enviar información a 
			través de Bluetooth creyendo que la están enviando por otro protocolo, como TCP/IP.\\
			
			\begin{itemize2}
				\item Tipo de trabajo: Software de comunicaciones
				\item Coste: Gratuito
				\item Licencia: IBM Public License
				\item Tecnologías implicadas: Bluetooth, TCP/IP, C++
				\item Autor: Apurva Kumar
				\item Sitio web: \cite{bluehoc}
			\end{itemize2}
			
			\begin{figure}[H]
				\centering
				\includegraphics[width=400px]{../media/bluehoc.png}
				\caption{Pantalla de la aplicación de configuración e BlueHoc}
			\end{figure}

		\subsection*{PySerial}
			PySerial es una biblioteca del lenguaje de programación Python que proporciona soporte para conexiones en serie (RS-232) a través de una 
			variedad de dispositivos diferentes: puertos serie antiguos, adaptadores Bluetooth, puertos de infrarrojos... También soporta puertos 
			serie remotos a través de la RFC 2217 (desde la versión 2.5).\\

			\begin{itemize2}
				\item Tipo de trabajo: Biblioteca software
				\item Coste: Gratuito
				\item Licencia: Python Software Foundation License
				\item Tecnologías implicadas: Bluetooth, IR, puerto serie
				\item Autor: Chris Liechti
				\item Sitio web: \cite{pyserial}
			\end{itemize2}

		\subsection*{RFIDIOt}
			RFIDIOt es una biblioteca del lenguaje de programación Python para detectar dispositivos RFID basado en PySerial.\\

			\begin{itemize2}
				\item Tipo de trabajo: Biblioteca software
				\item Coste: Gratuito
				\item Licencia: GPL 2.0
				\item Tecnologías implicadas: RFID, Python
				\item Autor: Adam Laurie
				\item Sitio web: \cite{rfidiot}
			\end{itemize2}

		\subsection*{Java Socket Interface for Infrared Communication}
			\textit{Java Socket Interface for Infrared Communication} es una API para el lenguaje de programación Java hecha por Hewlett Packard para 
			comunicar un ordenador con sistema operativo Linux con otro dispositivo por medio de rayos infrarrojos.\\

			\begin{itemize2}
				\item Tipo de trabajo: Biblioteca software
				\item Coste: Gratuito
				\item Licencia: LGPL 2.1
				\item Tecnologías implicadas: IR, Linux, Java
				\item Autores: A. Venkataramani y Jean Tourrilhes
				\item Sitio web: \cite{jsiic}
			\end{itemize2}
			
		\subsection*{Tabla comparativa de trabajos}
			A continuación, se presenta una tabla comparativa del proyecto y de los trabajos relacionados anteriormente, donde se refleja
			los puntos fuertes de cada uno.\\
			
			\begin{table}[H]
				\centering
				\begin{tabularx}{\textwidth}{|l|X|l|l|X|X|X|X|X|}
					\hline
					\rowcolor{LightBlue} Proyecto & 
					Sistema completo &
					Extensible & 
					Gratuito &
					Libre uso &
					Gest. usuarios & 
					Ind. dispositivos &
					Multi det. &
					Gest. errores\\
					\hline
					BluKit &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png}\\
					\hline
					GRM & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png}\\
					\hline
					PW & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png}\\
					\hline
					BlueHoc &
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png}\\
					\hline
					PySerial & 
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png}\\
					\hline
					RFIDIOt & 
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png}\\
					\hline
					JSIIC & 
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png} & 
					\includegraphics{../media/cancel.png} &
					\includegraphics{../media/cancel.png}\\
					\hline
					\textbf{Predesys} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} & 
					\includegraphics{../media/ok.png} &
					\includegraphics{../media/ok.png}\\
					\hline
				\end{tabularx}
				\caption{Comparativa de trabajos relacionados}
			\end{table}
			
			\begin{itemize2}
					\item \textit{Ind. dispositivos} = Independencia de los dispositivos usuario.
					\item \textit{Multi det.} = Multidetección. Detección por varios protocolos.
			\end{itemize2}
